package com.plug.service;

import com.plug.entity.PlugContrast;
import com.plug.entity.PlugDatasource;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * Created by admin on 2016/12/19.
 */
public interface IPlugContrastService {

    /**
     * 根据目标数据源ID与源数据源ID查找备份记录
     * @param srcDsId 源数据源ID
     * @param tgtDsId 目标数据源ID
     * @return
     */
    List<PlugContrast> findDataSourceID(Long srcDsId, Long tgtDsId);

    /**
     * 根据数据库ID查询数据库是否被关联
     * @param dsId
     * @return
     */
    int findContrastByDsID(Long dsId);

    /**
     * 查询所有对比记录
     * @return
     */
    List<PlugContrast> findAll();
    /**
     * 根据数据源查询所有表格
     * @param srcDsId 源数据源ID
     * @return
     */
    List<PlugContrast> findAllTable(Long srcDsId);

    List<Map<String, Object>> findDataSourceAndContrast();

    /**
     * 获得目标数据源表
     * @param srcDsId 源数据源IDd
     * @param tgtDsId 目标数据源ID
     *  @param srcDsTable 源数据源表
     * @return
     */
    PlugContrast findTgtTable(Long srcDsId,String srcDsTable, Long tgtDsId);

    /**
     * 查询所有任务列表
     * @return
     */
    List<PlugContrast> findTaskAll();

    /**
     * 根据任务ID查找任务
     * @param taskID
     * @return
     */
    PlugContrast findTaskID(String taskID);

    PlugContrast findByID(Long id);

    PlugContrast findDatasourceByName( Long srcDsId,  Long tgtDsId, String srcTab);
    /**
     * 查询所有的 数据源信息
     * @return
     */
    List<Map<String, Object>> dataSourecInfo(int pageIndex,int pageSize);

    /**
     * 根据任务ID删除
     * @param plugContrastList
     * @return
     */
    int deleteByPrimaryKey(List<PlugContrast> plugContrastList);

    /**
     * 新增数据配置信息
     * @param contrastList
     * @return
     */
    int insert(PlugContrast contrastList);
    /**
     * 修改单条记录
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(PlugContrast record);

    /**
     * 查询是否存在
     * @param record
     * @return
     */
    Integer selectContrast(PlugContrast record);
}
